在我們深入探討並開始以FastMCP實作MCP之前,會先來回顧一下Python中一個非常重要的基礎概念:同步與非同步,也就是 def
和 async def
的區別。
為什麼要先談這個?
因為MCP在設計工具時,本質上就是在處理「如何把一個函式交給模型來呼叫」。
而函式的型態(同步/非同步),會直接影響以下三件事情:
換句話說:怎麼定義函式,會決定 MCP 工具在整個工作流程裡的表現方式。
(聽起來滿抽象的,但保證下一篇會解釋得非常清楚!)
接下來的兩天,我們將會:
同步 vs 非同步
重新複習 def
和 async def
的基本概念與差異,這部分會用小範例幫大家了解。
開始實踐
接著介紹 MCP 的核心功能之一:@mcp.tool
裝飾器,看看如何把一個 Python 函式轉換為模型可以呼叫的工具。
如果直接跳進MCP實作,很容易迷失方向,像當初在看許多前輩的程式碼時,就一直搞不清同步/非同步的差別,為了避免產生這種割裂感,會先從設計MCP中常用的def
和 async def
來著手,能更好銜接實作!
準備好了嗎?暖身結束,進入實作吧!